#!/bin/bash

# 配置项
API_URL="https://notice.administrator.wiki/task/send_reminders"  # 替换为你的实际域名
LOG_FILE="/var/log/reminder/send_reminders.log"       # 日志文件路径
MAX_RETRIES=3                                         # 最大重试次数
RETRY_DELAY=60                                        # 重试间隔（秒）

# 确保日志目录存在
mkdir -p "$(dirname "$LOG_FILE")"

# 记录日志的函数
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
}

# 发送请求的函数
send_request() {
    local response
    local status_code
    
    # 使用 curl 发送请求并获取响应
    response=$(curl -s -w "\n%{http_code}" "$API_URL")
    status_code=$(echo "$response" | tail -n1)
    response_body=$(echo "$response" | head -n-1)
    
    # 检查 HTTP 状态码
    if [ "$status_code" -eq 200 ]; then
        log "成功发送提醒请求"
        log "响应: $response_body"
        return 0
    else
        log "请求失败 (HTTP $status_code)"
        log "错误响应: $response_body"
        return 1
    fi
}

# 主执行逻辑
log "开始执行提醒发送任务"

retry_count=0
success=false

while [ $retry_count -lt $MAX_RETRIES ] && [ "$success" = false ]; do
    if [ $retry_count -gt 0 ]; then
        log "等待 $RETRY_DELAY 秒后重试..."
        sleep $RETRY_DELAY
    fi
    
    if send_request; then
        success=true
    else
        retry_count=$((retry_count + 1))
        if [ $retry_count -lt $MAX_RETRIES ]; then
            log "准备第 $((retry_count + 1)) 次重试"
        fi
    fi
done

if [ "$success" = true ]; then
    log "任务执行完成"
    exit 0
else
    log "达到最大重试次数，任务失败"
    exit 1
fi 